package com.blog.dao;

import java.util.List;

import com.blog.VO.PlateVO;
import com.blog.VO.PostVO;
import com.blog.entity.User;

/**
 * @author 蒲鑫
 * @function 功能：多表联结查询（user,userLike）
 * @date 2023年6月1日
 */
public interface MultilistDao {

	/**
	 * @author 蒲鑫
	 * @function 功能：通过条件查询用户关注信息
	 * @parameter 传入参数：userId
	 * @return 返回值：返回此用户所有的LikeId的对象
	 * @date 2023年6月1日
	 */
	public List<User> selectUserLikeByUserId(int userId,int pageNum,int pageSize);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过条件查询用户粉丝信息（谁关注他的userId）
	 * @parameter 传入参数：likeId
	 * @return 返回值：返回此用户所有的userId的对象
	 * @date 2023年6月1日
	 */
	public List<User> selectUserFansByLikeId(int likeId,int pageNum,int pageSize);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过板块id查询板块所有帖子收藏量
	 * @parameter 传入参数：板块id
	 * @return 返回值：返回板块所有帖子收藏量
	 * @date 2023年6月1日
	 */
	public int selectPlateAllStarByPlateId(int plateId);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：通过板块id查询板块所有帖子点赞量
	 * @parameter 传入参数：板块id
	 * @return 返回值：返回板块所有帖子点赞量
	 * @date 2023年6月1日
	 */
	public int selectPlateAllLikeByPlateId(int plateId);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：查询板块所有帖子收藏量排名前num的板块
	 * @parameter 传入参数：需要查找前num个
	 * @return 返回值：返回查找好前num个的板块PlateVO
	 * @date 2023年6月1日
	 */
	public List<PlateVO> selectBestStarPlateByNum(int num);
	/**
	 * @author 蒲鑫
	 * @function 功能：查询板块所有帖子点赞量排名前num的板块
	 * @parameter 传入参数：需要查找前num个
	 * @return 返回值：返回查找好前num个的板块PlateVO
	 * @date 2023年6月1日
	 */
	public List<PlateVO> selectBestLikePlateByNum(int num);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：查询帖子收藏量排名前num的帖子
	 * @parameter 传入参数：需要查找前num个
	 * @return 返回值：返回查找好帖子收藏量前num个的帖子Post
	 * @date 2023年6月1日
	 */
	public List<PostVO> selectBestStarPostByNum(int num);
	
	/**
	 * @author 蒲鑫
	 * @function 功能：查询帖子点赞量排名前num的帖子
	 * @parameter 传入参数：需要查找前num个
	 * @return 返回值：返回查找好帖子点赞量前num个的帖子Post
	 * @date 2023年6月1日
	 */
	public List<PostVO> selectBestLikePostByNum(int num);
}
